
class CGameWorld;

class CGameShipExplosionManager
{
public:
    CGameShipExplosionManager(CGameWorld* pGameWorld);
    ~CGameShipExplosionManager();

    void Update();
private:

    struct ShipExplosion
    {
        int m_idxCurrent;
        Ogre::Billboard* m_pBillboard;
        bool m_isReversed;
    };

    void OnGameWorldEvent(CGameWorldEvent* pEvent);
    void AddExplosion(float rotation, float xPosition, float yPosition, int initialIndex);

    CGameWorld* m_pGameWorld;
    CGameWorld::CEventSubscription* m_pEventSubscription;

    Ogre::SceneNode* m_pNode;
    Ogre::BillboardSet* m_pBillboardSetExplosion;

    vector<ShipExplosion> m_explosions;
    float m_flUpdateTime;
};

